package com.ctshk.rpc.hotel.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
import java.util.TreeMap;
@Data
public class HotelProductDetailForDayQuery implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "产品ID")
    private Long id;

    @ApiModelProperty(value = "产品来源")
    private Integer sourceType;

    @ApiModelProperty(value = "所属酒店")
    private Long hotelId;

    @ApiModelProperty(value = "酒店品牌")
    private String brandName;

    @ApiModelProperty(value = "酒店名称")
    private String hotelName;

    @ApiModelProperty(value = "酒店房型名称")
    private String roomName;

    @ApiModelProperty(value = "所属房型")
    private Long roomId;

    @ApiModelProperty(value = "产品名称")
    private String name;

    @ApiModelProperty(value = "是否含早")
    private Integer hasBreakfast;

    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "负责人ID")
    private Long chargeId;

    @ApiModelProperty(value = "负责人名称")
    private String chargeUser;

    @ApiModelProperty(value = "适用人群ID")
    private Long targetPopulationId;

    @ApiModelProperty(value = "适用人群")
    private String targetPopulation;

    @ApiModelProperty(value = "允许自由行打包")
    private Integer allowPackage;

    @ApiModelProperty(value = "酒店主题JSON")
    private String themeJson;

    @ApiModelProperty(value = "定时开售起始")
    private LocalDate saleBegin;

    @ApiModelProperty(value = "定时开售截至")
    private LocalDate saleEnd;

    @ApiModelProperty(value = "开售时间类型")
    private Integer saleTimeType;

    @ApiModelProperty(value = "是否二次确认")
    private Integer isSecCheck;

    @ApiModelProperty(value = "预订须知")
    private String customerNotice;

    @ApiModelProperty(value = "取消政策")
    private Integer allowRefund;

    @ApiModelProperty(value = "预订服务费类型")
    private Integer reserveChargeType;

    @ApiModelProperty(value = "中旅退改手续费类型")
    private Integer refundChargeType;

    @ApiModelProperty(value = "预订服务费")
    private String reserveCharge;

    @ApiModelProperty(value = "中旅退改手续费")
    private String refundCharge;

    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;

    @ApiModelProperty(value = "预订状态")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "产品类型")
    private Integer productType;

    @ApiModelProperty(value = "来源")
    private Integer source;

    @ApiModelProperty(value = "税费及其它费用")
    private BigDecimal taxation;

    @ApiModelProperty(value = "产品状态")
    private Integer status;

    @ApiModelProperty(value = "最低价")
    private BigDecimal minPrice;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    //添加一个审核状态
    @ApiModelProperty(value = "审批状态")
    private Integer approvalStatus;

    //添加一个售卖状态
    @ApiModelProperty(value = "售卖状态(1.有效，2无效)")
    private Integer saleStatus;

    //添加一个推荐状态
    @ApiModelProperty(value = "推荐状态（1：推荐 2：不推荐）")
    private Integer recommendationStatus;

    @ApiModelProperty(value = "上架状态（1：上架  2：下架） 数据库待添加")
    private Integer onShelfStatus;

    @ApiModelProperty(value = "保存一个产品code，用来与长隆productCode关联")
    private String productCode;

    @ApiModelProperty("加幅策略每日规则列表")
    private TreeMap<LocalDate, List<HotelProductIncreaseStrategyRuleDTO>> dateRuleInfoMap;

}
